package com.example.big_event.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;

import java.util.Date;
import java.util.Map;


//token令牌生成工具
public class jwtUtil {

    private static final String KEY = "luojiakeng";


    //接受业务数据，生成token并返回

    //接收一个map集合
    public static String gereratetoken(Map<String,Object> claims){

        return JWT.create()
                .withClaim("claims",claims)//添加载荷
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 30))//过期时间(30分钟)
                .sign(Algorithm.HMAC256(KEY));//指定加密算法和密钥
    }

    //接受token，验证token，并返回数据
    public static Map<String, Object> parse(String token){
        return JWT.require(Algorithm.HMAC256(KEY))
                .build()
                .verify(token)
                .getClaim("claims")
                .asMap();
    }
}
